home *** CD-ROM | disk | FTP | other *** search
- Dim WINCON(1)
- Amos To Back
- FIL$=Command Line$
- If FIL$="" Then Goto REQ Else Goto SP
- SP:
- _WINDOPEN[1,0,0,640,50,"Sound Player V1.0 Programmiert von Frank Otto",0]
- Proc _EXAMINE_FILE[FIL$]
- FT$=Param$
- If FT$="ST" Then Goto TRACK
- If FT$="MED" : Goto MED
- End If
-
- REQ:
- _WINDOPEN[1,0,0,640,50,"Sound Player V1.0 Programmiert von Frank Otto",0]
-
- _WFILREQ["Ram Disk:"]
- Proc _EXAMINE_FILE[FIL$]
- FT$=Param$
- If FT$="ST" Then Goto TRACK
- If FT$="MED" Then Goto MED Else _WINDCLOSE[1] : End
- TRACK:
- Led Off : Track Loop On : _WPRINT[1,"Lade Soundtracker-Module '"+FIL$+"'. "] : Track Load FIL$,5 : _WPRINT[1," Spielen... Zum Beenden ESC drücken."] : Track Play 5
- Repeat : Until Key State(69) : Track Stop : _WINDCLOSE[1] : Led On : Track Loop Of : End
- MED:
- Led Off : _WPRINT[1,"Lade Med-Module '"+FIL$+"'. "] : Med Load FIL$,5 : _WPRINT[1,"Spielen... Zum Beenden ESC drücken."] : Med Play 5
- Repeat : Until Key State(69) : Med Stop : _WINDCLOSE[1] : Led On : End
-
- Procedure _WINDOPEN[N,X,Y,XX,YY,NAME$,CL]
-
- ' N - No of window.
- ' X - Xpos of window.
- ' Y - Ypos of window.
- ' XX - Width of window.
- ' YY - Height of window.
- ' NAME$ - Title of window.
- ' CL - Close gadget 0=Off 1=On (WB2 Only).
-
- ' ERR - Output error code.
-
- ' *** Give User Access To Error Code.
-
- Shared ERR,WINCON()
-
- ' *** Turn The X,Y,XX,YY,NAME$,CL Data Into Format Usable By DOS.
-
- X$=Str$(X)-" "
- Y$=Str$(Y)-" "
- XX$=Str$(XX)-" "
- YY$=Str$(YY)-" "
- CON$="CON:"+X$+"/"+Y$+"/"+XX$+"/"+YY$+"/"+NAME$
- If CL=1
- CON$=CON$+"/CLOSE"
- End If
- CON$=CON$+Chr$(0)
-
- ' *** Call DOS Open Function.
-
- Dreg(1)=Varptr(CON$)
- Dreg(2)=1005
- WINCON(N)=Doscall(-30)
-
- If WINCON(N)=0
- ERR=Doscall(-132)
- End If
-
- End Proc
-
- Procedure _WPRINT[N,M$]
-
- ' N - No of window.
- ' M$ - Text to be printed.
-
- ' ERR - Output error code.
-
- ' *** Give User Access To Error Code.
-
- Shared ERR,WINCON()
-
- If WINCON(N)=0
- Goto ERR
- End If
-
- ' *** Call The DOS Write Function.
-
- Dreg(1)=WINCON(N)
- Dreg(2)=Varptr(M$)
- Dreg(3)=Len(M$)
- X=Doscall(-48)
- If X=0
- Goto ERR
- End If
-
- Pop Proc
-
- ' *** In Case Of Error.
-
- ERR:
- ERR=Doscall(-132)
-
- End Proc
-
-
- Procedure _WINDEXECUTE[N,COM$]
-
- ' N - No of window.
- ' COM$ - Command to execute.
-
- ' ERR - Output error.
-
- ' *** Give User Access To Error Code.
-
- Shared ERR,WINCON()
-
- If WINCON(N)=0
- Goto ERR
- End If
-
- ' *** Call The DOS Execute Function.
-
- COM$=COM$+Chr$(0)
- Dreg(1)=Varptr(COM$)
- Dreg(2)=0
- Dreg(3)=WINCON(N)
- X=Doscall(-222)
- If X=0
- Goto ERR
- End If
-
- Pop Proc
-
- ' *** In Case Of Error.
-
- ERR:
- ERR=Doscall(-132)
-
- End Proc
-
- Procedure _WINDCLOSE[N]
-
- ' N - No of window.
-
- ' ERR - Output error.
-
- ' *** Give The User Access To Error Code.
-
- Shared ERR,WINCON()
-
- If WINCON(N)=0
- Goto ERR
- End If
-
- ' *** Call DOS Close Function.
-
- Dreg(1)=WINCON(N)
- X=Doscall(-36)
- If X=0
- Goto ERR
- End If
- Pop Proc
-
- ' *** In case of error.
-
- ERR:
- ERR=Doscall(-132)
-
- End Proc
-
- Procedure _WFILREQ[PTH$]
-
- ' PTH$ - Directory path.
-
- ' *** Give User Access To Error Code And The Filename.
-
- ' *** ERR = 0 : File-Requester Program Not Found.
- ' ERR = -1 : File-Requester Program Found.
-
- Shared ERR,FIL$
-
- ' *** Check For Requester Program.
-
- If Not Exist("C:RequestFile")
- ERR=0
- Pop Proc
- End If
-
- ' *** Execute Requester Program.
-
- _WINDEXECUTE[1,"C:RequestFile >Ram:AMOS-Temp.001 "+Chr$(34)+PTH$+Chr$(34)]
-
- ' *** Read In Selected File.
-
- Open In 1,"Ram:AMOS-Temp.001"
- F$=Input$(1,Lof(1))
- Close 1
-
- ' *** Delete Temp File.
-
- Kill "Ram:AMOS-Temp.001"
-
- ' *** Arrange Filename Into String.
-
- I=Instr(F$,Chr$(34),2)
- FIL$=Mid$(F$,2,I-2)
-
- ' *** Set Error Code.
-
- ERR=-1
-
- End Proc
-
- Procedure _EXAMINE_FILE[F$]
-
- ' *** Read File Header.
-
- Open In 1,F$
- LF=Lof(1)
- HEAD$=Input$(1,Min(LF,$440))
- Close 1
-
- ' *** Determine File Type.
-
- Restore DAT
-
- Repeat
-
- Read S1,H1$,S2,H2$,FT$
-
- If Mid$(HEAD$,S1,Len(H1$))=H1$ and Mid$(HEAD$,S2,Len(H2$))=H2$
- OK=1
- Exit
- End If
-
- Until H1$="END"
-
- ' *** File Header Data (Start1, Header1, Start2, Header2, File Type).
-
- DAT:
- Data $439,"M.K.",1,"","ST"
- Data $439,"FLT4",1,"","ST"
- Data 1,"MMD1",1,"","MED"
- Data 1,"MMD0",1,"","MED"
- End Proc[FT$]
-
-